package com.leyou.auth.utils;

import com.leyou.dto.UserDetails;

/**
 * @author jshstart
 * @creat 2020-12-23 21:19
 */
public class UserContext {
    private static final ThreadLocal<UserDetails> tl=new ThreadLocal<>();
    private static  final ThreadLocal<String> jwtTl=new ThreadLocal<>();

    /**
     * 存储一个jwt
     * @param jwt
     */
    public static void setJwt(String jwt){
        jwtTl.set(jwt);
    }
    /**
     * 获取一个jwt
     */
    public static String getJwt(){
        return jwtTl.get();
    }
    /**
     * 移除一个jwt
     */
    public static void removeJwt(){
        jwtTl.remove();
    }
    /**
     * 存储一个用户到当前线程
     * @param user 用户信息
     */
    public static void setUser(UserDetails user){
        tl.set(user);
    }

    /**
     * 从当前线程获取一个用户
     * @return
     */
    public static UserDetails getUser(){
        return tl.get();
    }

    /**
     * 从当前线程移除一个用户
     */
    public static void removeUser(){
        tl.remove();
    }
}
